"""
Model interfaces for continual learning components.

This package defines interfaces for all model components (backbone, adapter, head)
that form the building blocks of continual learning models.
"""

# Architecture interfaces
from .arch import (
    BackboneInterface,
    HeadInterface,
    MultiHeadInterface,
    ModelInterface,
)

# PEFT interfaces
from .pefts import (
    AdapterInterface,
    HookBasedAdapterInterface,
    HookFactoryInterface,
    HookInterface,
    TaskSpecificHookInterface,
    TaskAwareHookInterface,
    HookManagerInterface,
    TaskAwareHookManagerInterface,
    ModuleFinder,
    RouterInterface,
    CombinerInterface,
)

# Validation interface
from .validation import InterfaceValidator, InterfaceValidationError

__all__ = [
    # Architecture interfaces
    "BackboneInterface",
    "HeadInterface",
    "MultiHeadInterface",
    "ModelInterface",
    # PEFT interfaces
    "AdapterInterface",
    "HookBasedAdapterInterface",
    "HookInterface",
    "TaskSpecificHookInterface",
    "TaskAwareHookInterface",
    "ModuleFinder",
    "HookFactoryInterface",
    "HookManagerInterface",
    "TaskAwareHookManagerInterface",
    "RouterInterface",
    "CombinerInterface",
    # Validation utilities
    "InterfaceValidator",
    "InterfaceValidationError",
]
